﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Negocio.Interface;
using Metadados;
using Dados;
using System.Data;

namespace Negocio
{
    public class NGPesquisaProduto
    {
        private ITPesquisaProduto telaPesquisa;
        
        string descricao;
        string apelidoCampo;
        string tipoCampo;

        public NGPesquisaProduto(ITPesquisaProduto telaPesquisaProduto)
            {
                telaPesquisa = telaPesquisaProduto;
            }

        public DataView ListarProdutos(string nomeCampo, string tipoCampo)
        {
            Negocio.NGProduto p = new Negocio.NGProduto(null);
            return p.ListarProdutos(nomeCampo, tipoCampo, telaPesquisa.descricao);
        }

        public List<PesquisaProduto> getDadosPesquisa()
        {
            descricao = telaPesquisa.descricao;
            apelidoCampo = telaPesquisa.apelidoCampo;

            DBPesquisaProduto dadosPesquisa = new DBPesquisaProduto();
            try
            {
                return dadosPesquisa.consultar(apelidoCampo); 
            }
            catch (Exception)
                {
                    return null; 
                }
        }

        void SetarItemCombo()
        {
            List<PesquisaProduto> ListaPesquisa;
            ListaPesquisa = getDadosPesquisa();

            foreach (PesquisaProduto p in ListaPesquisa)
            {
                telaPesquisa.setItemCombo(p.apelidoCampo);
            }

        }

        public void Inicial()
        {
            telaPesquisa.apelidoCampo = string.Empty;
            telaPesquisa.descricao = string.Empty;
            SetarItemCombo();
        }


        public string getDadosCampo(ref int tamanhoCampo, ref string nomeCampo)
        {
            List<PesquisaProduto> ListaPesquisa;
            ListaPesquisa = getDadosPesquisa();

            try
            {
                foreach (PesquisaProduto p in ListaPesquisa)
                    {
                        tipoCampo = p.tipoCampo;
                        tamanhoCampo = p.tamanhoCampo;
                        nomeCampo = p.nomeCampo; 
                    }
                return tipoCampo;
            }
            catch (Exception) 
            {
                return string.Empty; 
            }
        }
    }
}
